<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of MemoriaTabu
 *
 * @author Marlon
 */

class MemoriaTabu {
    
    private $Memoria=array();//arraglo de pares de indices de trabajos
    private $Permanencia=0;
    private $LongMemo=0;
    
    function __construct() {
        
    }
    public function agregarMov($var){
        if(count($this->Memoria)==$this->LongMemo){//si llega a diez quita el elemento más antiguo que es el primero
            array_shift($this->Memoria);
        }
        array_push($var,array('Permanencia'=>  $this->Permanencia));
        array_push($this->Memoria, $var);
    }
    public function SetPermanencia($ten){
        $this->Permanencia=$ten;
    }
    public function SetLong($var){
        $this->LongMemo=$var;
    }
    public function GetLong(){
        return $this->LongMemo;
    }
    public function existeMov($mov){ //donde $mov=array('col'=>,'fil'=>)
        $existe=false;
        foreach($this->Memoria as $movSave){
            if(($movSave['col']==$mov['col']) && ($movSave['fil']==$mov['fil']) ){
               $existe=true;break; 
            }
        }
        return $existe;
    }
    public function reducirPermanencia(){//valida la permanencia de los elemento segun el atributo Permanencia
        $elements=count($this->Memoria);        
        for( $i=0;$i<$elements;$i++){
            if(!empty($this->Memoria[$i]))               
                $this->Memoria[$i][0]['Permanencia']--;//Se reducen en 1 cada permanencia
        }        
    }
}

?>
